//package org.gim.qs;
//
//import cn.afterturn.easypoi.excel.ExcelImportUtil;
//import cn.afterturn.easypoi.excel.entity.ImportParams;
//import org.apache.commons.net.ftp.FTP;
//import org.apache.commons.net.ftp.FTPClient;
//import org.apache.commons.net.ftp.FTPFile;
//
//import java.io.IOException;
//import java.io.InputStream;
//import java.util.List;
//
///**
// * 独立测试：验证 FTP 是否能正常连接、列出文件、确认文件是否存在。
// */
//public class FtpConnectionTest {
//
//    // ======= 根据实际情况修改以下配置 =======
//    private static final String FTP_HOST = "47.120.60.61";
//    private static final int FTP_PORT = 21;
//    private static final String FTP_USER = "lingminglei";
//    private static final String FTP_PASS = "LMLlml062424";
//    private static final String REMOTE_DIR = "//2025年10月18日";
//    private static final String TARGET_FILE_NAME = "TD-533A120250+CFile1.xlsx"; // 要检查的文件名
//    // ======================================
//
//    public static void main(String[] args) {
//        FTPClient ftpClient = new FTPClient();
//        try {
//            System.out.println("🚀 开始连接 FTP 服务器...");
//
//            ftpClient.setControlEncoding("GBK");
//            ftpClient.setConnectTimeout(10000);
//            ftpClient.setDataTimeout(10000);
//            ftpClient.connect(FTP_HOST, FTP_PORT);
//
//            int replyCode = ftpClient.getReplyCode();
//            if (!ftpClient.isConnected() || replyCode >= 400) {
//                throw new IOException("❌ 无法连接 FTP 服务器，返回码：" + replyCode);
//            }
//
//            if (!ftpClient.login(FTP_USER, FTP_PASS)) {
//                throw new IOException("❌ 登录失败，请检查用户名或密码");
//            }
//
//            ftpClient.enterLocalPassiveMode();
//            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//
//            System.out.printf("✅ 已连接到 FTP：%s:%d%n", FTP_HOST, FTP_PORT);
//
//            // 切换目录
//            if (!ftpClient.changeWorkingDirectory(REMOTE_DIR)) {
//                throw new IOException("❌ 无法进入目录：" + REMOTE_DIR);
//            }
//
//            // 列出文件
//            System.out.println("📂 当前目录文件列表：");
//            FTPFile[] files = ftpClient.listFiles();
//            for (FTPFile f : files) {
//                System.out.println(" - " + f.getName());
//            }
//
//            // 检查目标文件是否存在
//            boolean exists = false;
//            for (FTPFile f : files) {
//                if (f.getName().equals(TARGET_FILE_NAME)) {
//                    exists = true;
//                    break;
//                }
//            }
//
//            if (exists) {
//                System.out.println("✅ 文件存在：" + TARGET_FILE_NAME);
//            } else {
//                System.out.println("⚠️ 文件不存在：" + TARGET_FILE_NAME);
//            }
//
//            // 读取文件流并解析
//            try (InputStream inputStream = ftpClient.retrieveFileStream(TARGET_FILE_NAME)) {
//                if (inputStream == null) {
//                    throw new IOException("无法获取文件流，可能是权限或路径问题");
//                }
//
//                ImportParams params = new ImportParams();
//                params.setTitleRows(0);
//                params.setHeadRows(1);
//                params.setStartRows(2); // 从第4行起（0-based）
//
//                List<QualityInspectionDataExcelReq> list =
//                        ExcelImportUtil.importExcel(inputStream, QualityInspectionDataExcelReq.class, params);
//
////                log.info("✅ 成功读取 Excel，共 {} 条记录", list.size());
//                list.forEach(System.out::println);
//
////                success = true; // ✅ 本次执行成功
//            }
//
//            ftpClient.completePendingCommand();
//            ftpClient.logout();
//
//        } catch (Exception e) {
//            System.err.println("❌ 出现异常：" + e.getMessage());
//        } finally {
//            try {
//                if (ftpClient.isConnected()) {
//                    ftpClient.logout();
//                    ftpClient.disconnect();
//                }
//            } catch (IOException e) {
//                System.err.println("⚠️ 关闭连接时异常：" + e.getMessage());
//            }
//        }
//    }
//}
